package com.agileai.bpm.domain.define;

import java.util.ArrayList;
import java.util.List;

import com.agileai.bpm.interceptor.BaseInterceptor;

public class Activity extends DefineObject{
	private List<BaseInterceptor> inIntercepterList = new ArrayList<BaseInterceptor>();
	private List<BaseInterceptor> outIntercepterList = new ArrayList<BaseInterceptor>();
	
	private List<Transition> inTransitionList = new ArrayList<Transition>();
	private List<Transition> outTransitionList = new ArrayList<Transition>();
	
	private String businessURL = null;
	private String mobileBizURL = null;
	private String scriptlet = null;
	private String processId = null;
	private String actType = null;
	private String refProcessId = null;
	
	private String controlType = null;
	private String matchedFork = null;

	private boolean isKeepLastPerformer = false;
	
	private Process process = null;
	
	public static class ControlType{
		public static final String AND = "AND";
		public static final String OR = "OR";
		public static final String XOR = "XOR";
	}
	
	public static class SpecifyType{
		public static final String user = "u";
		public static final String role = "r";
	}
	
	public static class ActTypes {
		public static final String start = "start";
		public static final String end = "end";
		public static final String manual = "manual";
		public static final String audit = "audit";
		public static final String watch = "watch";
		public static final String invoke = "invoke";
		public static final String fork = "fork";
		public static final String join = "join";
	}	

	public static class PropertyKeys{
		public static final String triggerCount = "triggerCount";
		public static final String forkTransCount = "forkTransCount";
	}
	
	
	public List<BaseInterceptor> getInIntercepterList() {
		return inIntercepterList;
	}
	public String getActType() {
		return actType;
	}
	public void setActType(String actType) {
		this.actType = actType;
	}
	public List<BaseInterceptor> getOutIntercepterList() {
		return outIntercepterList;
	}
	public List<Transition> getInTransitionList() {
		return inTransitionList;
	}
	public List<Transition> getOutTransitionList() {
		return outTransitionList;
	}
	public String getBusinessURL() {
		return businessURL;
	}
	public void setBusinessURL(String processURL) {
		this.businessURL = processURL;
	}
	public String getScriptlet() {
		return scriptlet;
	}
	public void setScriptlet(String scriptlet) {
		this.scriptlet = scriptlet;
	}
	public String getProcessId() {
		return processId;
	}
	public void setProcessId(String processId) {
		this.processId = processId;
	}
	public String getRefProcessId() {
		return refProcessId;
	}
	public void setRefProcessId(String refProcessId) {
		this.refProcessId = refProcessId;
	}
	
	public String getControlType() {
		return controlType;
	}
	public void setControlType(String controlType) {
		this.controlType = controlType;
	}
	public Process getProcess() {
		return process;
	}
	public void setProcess(Process process) {
		this.process = process;
	}
	public boolean isKeepLastPerformer() {
		return isKeepLastPerformer;
	}
	public void setKeepLastPerformer(boolean isKeepLastPerformer) {
		this.isKeepLastPerformer = isKeepLastPerformer;
	}
	public String getMatchedFork() {
		return matchedFork;
	}
	public void setMatchedFork(String matchedFork) {
		this.matchedFork = matchedFork;
	}
	public String getMobileBizURL() {
		return mobileBizURL;
	}
	public void setMobileBizURL(String mobileBizURL) {
		this.mobileBizURL = mobileBizURL;
	}
}